<?php
    require_once('../../includes/entorno.php');
    Main::inicia(__FILE__, '../../');
    
    Entrada::requiere($_GET, array('clave', Dato::CADENA));
    
    $codigo = Captcha::obten_codigo($_REQUEST['clave']);
    $longitud_codigo = strlen($codigo);
    
    $x = 275;
    $y = 100;
    
    $espacio = $x / ($longitud_codigo + 1);
    $imagen = imagecreatetruecolor($x, $y);
    
    $fondo = imagecolorallocate($imagen, 255, 255, 255);
    $borde = imagecolorallocate($imagen, 128, 128, 128);
    
    $colores = array(
        imagecolorallocate($imagen, 128, 64, 192),
        imagecolorallocate($imagen, 192, 64, 128),
        imagecolorallocate($imagen, 128, 192, 64)
    );
    
    $numero_colores = count($colores);
    
    imagefilledrectangle($imagen, 1, 1, $x - 2, $y - 2, $fondo);
    imagerectangle($imagen, 0, 0, $x - 1, $y - 1, $borde);
    
    $fuente = realpath(RAIZ.'includes/varios/font.ttf');
    
    for ($i = 0; $i < $longitud_codigo; ++$i) {
        imagettftext(
            $imagen,
            28 + rand(40, 60),
            -20 + rand(0, 42),
            ($i + 0.5) * $espacio,
            60 + rand(15, 25),
            $colores[$i % $numero_colores],
            $fuente,
            $codigo[$i]
        );
    }
    
    header('Content-type: image/png');

    for ($i = 0; $i < 1000; ++$i) {
        $x1 = rand(5, $x - 5);
        $y1 = rand(5, $y - 5);
        $x2 = $x1 - 4 + rand(0, 8);
        $y2 = $y1 - 4 + rand(0, 8);
        
        imageline($imagen, $x1, $y1, $x2, $y2, $colores[rand(1, $numero_colores) - 1]);
    }
    
    imagepng($imagen);
?>